{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "3be8a35b",
   "metadata": {},
   "source": [
    "# canny边缘检测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f0a6f705",
   "metadata": {},
   "outputs": [],
   "source": [
    "import cv2\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from answer_43 import *\n",
    "import  glob\n",
    "import os\n",
    "from PIL import ImageFilter\n",
    "import imutils\n",
    "plt.style.use('seaborn')\n",
    "plt.rcParams['font.sans-serif']=['Microsoft YaHei'] #正常显示中文字体\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b7954186",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Read image\n",
    "img = cv2.imread(\"thorino.jpg\").astype(np.float32)\n",
    "\n",
    "# Canny\n",
    "edge = Canny(img)\n",
    "out = edge.astype(np.uint8)\n",
    "\n",
    "#show\n",
    "fig = plt.figure(figsize=(10,10))\n",
    "ax = fig.add_subplot(241)\n",
    "im = ax.imshow(out) #灰度"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f9be4c79",
   "metadata": {},
   "source": [
    "# 46"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cb22490a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import cv2\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from answer_46 import *\n",
    "import  glob\n",
    "import os\n",
    "from PIL import ImageFilter\n",
    "import imutils\n",
    "plt.style.use('seaborn')\n",
    "plt.rcParams['font.sans-serif']=['Microsoft YaHei'] #正常显示中文字体\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "522e39f7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Read image\n",
    "img = cv2.imread(\"thorino.jpg\").astype(np.float32)\n",
    "\n",
    "# Canny\n",
    "edge = Canny(img)\n",
    "\n",
    "# Hough\n",
    "out = Hough_Line(edge, img)\n",
    "out = out.astype(np.uint8)\n",
    "\n",
    "#show\n",
    "fig = plt.figure(figsize=(10,10))\n",
    "ax = fig.add_subplot(241)\n",
    "im = ax.imshow(out) #灰度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "53f356eb",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3d337604",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6fdbc0f9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1e3e83f3",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
